#pragma once

#include "Model3D.h"
#include "GroundTypes.h"
#include "HSModelAPI.h"

class HeightMap;

HSMODEL_API void GenerateSurface(Model3D& o_model, const HeightMap& i_height_map, double i_origin_x, double i_origin_y, 
                                 double i_origin_z, double i_length);

HSMODEL_API void ApplyGroundTypes(Model3D& io_model, const HeightMap& i_height_map, double i_origin_x, double i_origin_y,
                                  double i_origin_z, double i_length,
                                  const TGroundTypeMap& i_ground_types);

HSMODEL_API void GeneratePartOfSurface(Model3D &o_model, std::vector<TVector3>& i_changed_points, double i_origin_x, double i_origin_y,
                     double i_origin_z, double i_length);